package com.ato.CommonClass.StringClass;

/**
 * @author wangjing
 * @create 2021--10--01--21:02
 */

public class StringTest2 {
    public static void main(String[] args) {

        String s1 = "  ABc123  "; // 由于是字面量创建。区别于new
        int length = s1.length();
        System.out.println("int lenth()  长度：" + length);

        char c = s1.charAt(1);
        System.out.println("char charAt(int index) 指定索引处的字符" + c);

        boolean empty = s1.isEmpty();
        System.out.println("boolean isEmpty() 是否为空串，等价于s1.length == 0 " + empty);

        String s = s1.toLowerCase();
        System.out.println("String toLowerCase() 转小写 不修改原字符串 " + s);

        String s2 = s1.toUpperCase();
        System.out.println("String toUpperCase() 转大写 不修改原字符串  " + s2);

        String trim = s1.trim();
        System.out.println("String trim() 去除前后空格" + trim);

        String s3 = "  abc123  ";
        boolean equals = s1.equals(s3);
        boolean b = s1.equalsIgnoreCase(s3);
        System.out.println("boolean equals(Object obj) 比较字符串 “ 内容 ” 是否相同 " + equals);
        System.out.println("boolean equalsIgnoreCase(String antherString) 比较字符串内容是否相同，且忽略大小写 " + b);

        String concat = s1.concat(s3);
        System.out.println("String concat(String str) 拼接字符串，相当于 + " + concat);

        int i = s1.compareTo(s3);
        // 相当于还是比较字符串内容，只是不相同时，比较的是他们的unicode编码中的数字的大小（排序） ，负数表示：当前字符串小 ，0 ：相等。 正数： 大
        System.out.println("int compareTo(String antherString) 比较两个字符串的大小 " + i);

        String substring = s1.substring(1);
        System.out.println("String substring(int index) 从index开始截取到最后，并返回一个新的字符串" + substring);

        String substring2 = s1.substring(1, 5);
        System.out.println("String substring(int startIndex , int endIndex：不包含此索引 ) 从startIndex开始截取到endIndex，并返回一个新的字符串");
        System.out.println(substring2);

        boolean b1 = s1.startsWith("A", 2);
        System.out.println("boolean startsWith(String prefix, int index) 从index索引开始的字符串，是否已prefix参数 开始 " + b1);

        String s8 = "ABc";
        boolean contains = s1.contains(s8);
        System.out.println("boolean contains(CharSequence s) 比较字符串中是否含有参数中的字符串  " + contains);

        String replace = s1.replace("ABc", "abc");
        System.out.println("String replace( CharSequence target,  CharSequence replacement)  使用参数1:的CharSequence 替换指定 字符串 所有满足的） " + replace);

        String replace1 = s1.replace('A', 'a');
        System.out.println("String replace( char oldChar,  char newChar)  替换一个新的字符（所有满足的）。 注意是字符" + replace1);

        String s9 = "123java456php789mysql10";
        String s4 = s9.replaceAll("\\d+", ",");
        System.out.println("String replaceAll( String regex,   String replacement)  使用正则替换所有匹配到的 " + s4);

        String s5 = s9.replaceFirst("\\d+", ".");
        System.out.println("String replaceAll( String regex, @NotNull String replacement)  使用正则替换匹配到的:只匹配第一个  " + s5);

        boolean matches = s9.matches("\\d+");
        System.out.println("boolean  matches(String regx) 字符串是否满足正则 " + matches);

        String[] split = s9.split("\\d+");
        //  可以是正则 也可以是一个字符串
        System.out.println("String[] split(String regx) 字符串是否满足正则  返回字符串的数组");
        for (int j = 0; j < split.length; j++) {
            System.out.print(split[j]);
        }

        String[] split1 = s9.split("\\d+", 2);
        System.out.println("String[] split(String regx,int limit)  返回：满足符合正则的字符串数组，且满足的个数不超过limit个，如果超过，则将超过的全部放在一起");
        for (int j = 0; j < split1.length; j++) {
            System.out.print(split1[j] + "  ");
            if (j <= split.length) System.out.println("");
        }


        String s7 = "123";
        System.out.println("利用包装类将字符串转为其他基本数据类型， parseXxx(String str)  " + Integer.parseInt(s7) + "  " + Boolean.parseBoolean(s7));

        int i1 = 123;
        System.out.println("将其他类转为字符串 ：  String.valueOf(xxx) 或者拼串  " + String.valueOf(i1));

        char[] chars = s7.toCharArray();
        for (int j = 0; j <chars.length ; j++) {
            System.out.println(chars[j]);
        }

        String Ss =  new String(chars);
        System.out.println(Ss);
        System.out.println("***********");
        byte[] bytes = "s7zhong中国".getBytes();
        for (int j = 0; j <bytes.length ; j++) {
            System.out.println(bytes[j]);

        }

    }
}
